There is a trend towards virtualization in the Enterprise and Office computing environments. In general, the ratios of virtual machines per host have been steadily increasing. While currently it is not uncommon to have 10 virtual machines per host machine, it is estimated that this will increase to 15, 20, or more in the near future. Over the next several years it is expected that the majority of computing environments will be virtualized. With host machines supporting more and more virtual machines there is an increased concern with respect to availability of virtual machines on a host machine. The availability of virtual machines on a host machine can be impacted by any number of issues. One of these issues is a memory module failure on the host machine.
Under the current architecture, typically, each virtual machine may be distributed across a multitude of memory modules of the host machine, with the virtual machine taking up only a portion of each of these memory modules. This type of allocation leads to an interleaved memory allocation where each memory module may have a portion of a multitude of virtual machines residing on it. The benefit of this interleaved allocation is that it enables parallel access to the data of the virtual machine because each memory module holding a portion of the virtual machine can be accessed simultaneously. The interleaved architecture, however, has a draw back when it comes to virtual machine availability. Utilizing current architecture, whenever there is a memory module failure, all virtual machines on the host machine must be shut down, to enable the host machine to be restarted to exclude the failed memory module. Therefore, whenever a single memory module fails on a host machine it causes an outage of all virtual machines running on that host machine.